package com.lintesis.lintesismodel.protocolo;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import com.lintesis.lintesismodel.common.Type;
import com.lintesis.lintesismodel.common.hibernate.BussinessObject;
import com.lintesis.lintesismodel.personas.Medico;

@Entity
public class Estudio extends BussinessObject{

	@javax.persistence.SequenceGenerator( name="SEQ_ESTUDIO", sequenceName="SEQ_ESTUDIO", allocationSize=1)
	@Id
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_ESTUDIO")
	
	private Integer estudioId;
	private Integer nroEstudio;
	@OneToMany
	private List<Analisis> lAnalisis;
	@OneToMany
	private List<Fraccion> lFracciones;
	@OneToMany
	private List<Week> lWeeks;
	@ManyToOne
	private Medico medico;
	@ManyToOne
	private Type tipoEstudio;
	@ManyToOne
	private Type nivelImpacto;
	
	public Integer getEstudioId() {
		return estudioId;
	}

	public void setEstudioId(Integer estudioId) {
		this.estudioId = estudioId;
	}

	public Integer getNroEstudio() {
		return nroEstudio;
	}

	public void setNroEstudio(Integer nroEstudio) {
		this.nroEstudio = nroEstudio;
	}

	public List<Analisis> getlAnalisis() {
		return lAnalisis;
	}

	public void setlAnalisis(List<Analisis> lAnalisis) {
		this.lAnalisis = lAnalisis;
	}

	public List<Fraccion> getlFracciones() {
		return lFracciones;
	}

	public void setlFracciones(List<Fraccion> lFracciones) {
		this.lFracciones = lFracciones;
	}

	public List<Week> getlWeeks() {
		return lWeeks;
	}

	public void setlWeeks(List<Week> lWeeks) {
		this.lWeeks = lWeeks;
	}

	public Medico getMedico() {
		return medico;
	}

	public void setMedico(Medico medico) {
		this.medico = medico;
	}

	public Type getTipoEstudio() {
		return tipoEstudio;
	}

	public void setTipoEstudio(Type tipoEstudio) {
		this.tipoEstudio = tipoEstudio;
	}

	public Type getNivelImpacto() {
		return nivelImpacto;
	}

	public void setNivelImpacto(Type nivelImpacto) {
		this.nivelImpacto = nivelImpacto;
	}

	@Override
	public void doAfterDelete() {
		// TODO Auto-generated method stub
	}

	@Override
	public void doAfterSave() {
		// TODO Auto-generated method stub
	}

	@Override
	public void doBeforeDelete() {
		// TODO Auto-generated method stub
	}

	@Override
	public void doBeforeSave() {
		// TODO Auto-generated method stub
	}

	@Override
	public Integer getId() {
		return estudioId;
	}

	@Override
	public String getObjectDescription() {
		return null;
	}

}
